Field of the Invention
The present invention relates to external workflow launching and more particularly to launching an external workflow using reliable messaging.
Description of the Related Art
A workflow consists of a sequence of concatenated steps. A workflow management system is a computer system that manages and defines a series of tasks within an organization as concatenated steps in order to produce a final outcome or outcomes. In operation, workflow management systems allow end users to define in computer memory different workflows for different types of jobs or processes. At each stage in the workflow, one individual or group of individuals can be assigned to a specific task. Once the task is complete, the workflow management system ensures that the individuals or group of individuals responsible for the next task are notified and receive the data requisite to execute the next defined stage of the process.
Workflow management systems have been implemented according to the services oriented architecture (SOA). In SOA, different programmatic tasks are implemented in separable programmatic logic that can be disposed and executed in different containers about a computer communications network. The programmatic tasks can be indexed within a directory and accessed on demand through the issuance of a network request to access the functionality or encapsulated data of the tasks. In fact, entire workflows can be disposed externally from other workflows. In this way, a workflow can be defined as a sequence of invoking different componentized tasks that further may be distributed so as to render the workflow highly available.
For workflow management systems implemented in distributed fashion, such as according to a Web services paradigm or SOA, communications between programmatic objects can be of paramount importance—particularly when invoking an external workflow from a contemporaneously executing task in a workflow. Reliable messaging refers to a protocol that allows object messages to be reliably delivered between distributed applications in the presence of software component, system, or network failures. As one example, “WS-ReliableMessaging” is a reliable messaging protocol implementation that operates upon simple object access protocol (SOAP) messages.
In a workflow management system, it is desirable that the state of a task object also reflects the state of the workflow associated with the task object. Further, when launching an external workflow using reliable messaging, the result of the attempt to launch the workflow can be either successful in that the workflow has started, or failed in that the workflow did not start. Yet, the reason for failure to launch an external workflow can be ambiguous in that the failure state does not indicate whether or not the failure is recoverable or non-recoverable. Yet, for recoverable errors, the task object state should be set to “Working” since the reliable messaging framework will try to re-deliver the request when remote server returns online. Conversely, for non-recoverable errors, the object task should be set to “Failed”.